package com.zhihuishu.micro.course.service;

import java.util.List;

import com.zhihuishu.micro.course.dto.CategoryDto;
import com.zhihuishu.micro.course.dto.CourseCategoryDto;
import com.zhihuishu.micro.course.model.Label;

/**
 * 分类服务接口
 * 
 * @author zhanglikun
 * @date 2015年9月21日 下午4:44:29
 */
public interface CategoryService {

    CategoryDto get(int categoryId);

    /**
     * 根据父ID，查询所属子分类列表(一级分类，使用参数0来查询)
     * 
     * @param parentId
     * @return
     */
    List<CategoryDto> list(int parentId);

    /**
     * 查询课程分类集合
     * 
     * @param courseId
     * @return
     */
    List<CourseCategoryDto> listByCourse(long courseId);

    /**
     * 保存课程分类关系
     * 
     * @param courseCategory
     * @return
     */
    Integer saveCourseCategory(CourseCategoryDto courseCategory);

    /**
     * 更新课程分类关系
     * 
     * @param courseCategory
     */
    void updateCourseCategory(CourseCategoryDto courseCategory);

    /**
     * 保存CC的课程分类
     * 
     * @discription
     * @author jipeng
     * @created 2016年4月27日 下午4:56:55
     * @param courseCategory
     */
    void saveCCCategory(CourseCategoryDto courseCategory);

    /**
     * 更新CC的课程分类
     * 
     * @discription
     * @author jipeng
     * @created 2016年4月28日 下午5:54:51
     * @param courseCategory
     * @param courseId
     */
    void updateCCCategory(long courseId);

    /**
     * 
     * @discription 根据id删除
     * @author jipeng
     * @created 2016年9月19日 下午7:37:17
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 
     * @param courseIds 根据课程查询分类列表
     * @return
     */
    List<CourseCategoryDto> listByCourse(List<Long> courseIds);
    /**
     * @Description:
     *  @date:@2016年12月14日上午11:17:16
     *  @author:嵇鹏
     *  @Param:
     *  @retuen:List<Label>
     */
    List<CategoryDto> listAllLables();

}
